package dwei.astar
{
	import flash.geom.Point;

	public interface IAStarParser
	{
		/**
		 * 根据指定点(单位:像素)坐标构造VO对象
		 * @param point
		 * @return 
		 * 
		 */		
		function getVO(point:Point):AStarVO;
		/**
		 * 返回指定VO的x,y坐标(单位:像素)
		 * @param vo
		 * @return 
		 * 
		 */		
		function getPoint(vo:AStarVO):Point;
		/**
		 * 获取指定VO周围的可移动VO
		 * @param vo
		 * @return 
		 * 
		 */		
		function getArounds(vo:AStarVO):Array;
		/**
		 * 计算voFrom到voTo的代价
		 * @param voFrom
		 * @param voTo
		 * @return 
		 * 
		 */		
		function getFeeFrom(voFrom:AStarVO, voTo:AStarVO):Number;
		/**
		 * 估算voFrom到voTo的代价
		 * @param voFrom
		 * @param voTo
		 * @return 
		 * 
		 */		
		function getFeeTo(voFrom:AStarVO, voTo:AStarVO):Number;
		/**
		 * 判断是否可以在指定VO内移动
		 * @param vo
		 * @return 
		 * 
		 */		
		function getMovable(vo:AStarVO):Boolean;
	}
}